package com.tal.algorithms.tree.binarysearchtree;

public class BTNode<K extends Comparable, V> {

    //每个结点所包含的关键字个数有上界和下界。用一个被称为B树的最小度数(minmum degree）的规定整数 表示这里的界。
    public final static int MIN_DEGREE          =   2;
    //除了根结点以外的每个结点必须至少有 t -1个关键字
    public final static int LOWER_BOUND_KEYNUM  =   MIN_DEGREE - 1;
    //每个结点至多可包含2t - 1个关键字。
    public final static int UPPER_BOUND_KEYNUM  =   (MIN_DEGREE * 2) - 1;

    //x.leaf，一个boolean值，如果x是叶子节点则为true，否则为false。
    protected boolean mIsLeaf;
    //x.n表示当前存储在结点中的关键字个数。
    protected int mCurrentKeyNum;
    //x.n个关键字本身，以非降序存放。
    protected BTKeyValue<K, V> mKeys[];
    //每个内部结点x还包含x.n+1个指向其孩子的指针。叶结点没有孩子，所以它们的属性没有定义。
    protected BTNode mChildren[];

    class BTKeyValue<K extends Comparable, V>
    {
        protected K mKey;
        protected V mValue;

        public BTKeyValue(K key, V value) {
            mKey = key;
            mValue = value;
        }
    }

}
